home *** CD-ROM | disk | FTP | other *** search
- unit LogoMain;
-
- interface
-
- uses Windows, Classes, Graphics, Forms, Controls, Menus,
- Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls;
-
- type
- TLogoAppForm = class(TForm)
- MainMenu: TMainMenu;
- FileMenu: TMenuItem;
- FileNewItem: TMenuItem;
- FileOpenItem: TMenuItem;
- FileSaveItem: TMenuItem;
- FileSendItem: TMenuItem;
- FileExitItem: TMenuItem;
- OpenDialog: TOpenDialog;
- SaveDialog: TSaveDialog;
- Help1: TMenuItem;
- AboutItem: TMenuItem;
- SpeedPanel: TPanel;
- OpenBtn: TSpeedButton;
- SaveBtn: TSpeedButton;
- ExitBtn: TSpeedButton;
- StatusBar: TStatusBar;
- RichEdit1: TRichEdit;
- SendBtn: TSpeedButton;
- procedure FormCreate(Sender: TObject);
- procedure FileExit(Sender: TObject);
- procedure FileNew(Sender: TObject);
- procedure FileOpen(Sender: TObject);
- procedure FileSave(Sender: TObject);
- procedure FileSaveAs(Sender: TObject);
- procedure FileSend(Sender: TObject);
- procedure About(Sender: TObject);
- procedure ShowHint(Sender: TObject);
- private
- FFileName: String;
- public
- { Public declarations }
- end;
-
- var
- LogoAppForm: TLogoAppForm;
-
- implementation
-
- uses SysUtils, Mapi, About, LogoStrs;
-
- {$R *.DFM}
-
- procedure TLogoAppForm.FormCreate(Sender: TObject);
- begin
- Application.OnHint := ShowHint;
- end;
-
- procedure TLogoAppForm.FileNew(Sender: TObject);
- begin
- FFileName := LoadStr(sUntitled);
- RichEdit1.Lines.Clear;
- RichEdit1.Modified := False;
- end;
-
- procedure TLogoAppForm.FileOpen(Sender: TObject);
- begin
- if OpenDialog.Execute then
- begin
- RichEdit1.Lines.LoadFromFile(OpenDialog.FileName);
- FFileName := OpenDialog.FileName;
- RichEdit1.SetFocus;
- RichEdit1.Modified := False;
- RichEdit1.ReadOnly := ofReadOnly in OpenDialog.Options;
- end;
- end;
-
- procedure TLogoAppForm.FileSave(Sender: TObject);
- begin
- if FFileName = LoadStr(sUntitled) then
- FileSaveAs(Sender)
- else
- begin
- RichEdit1.Lines.SaveToFile(FFileName);
- RichEdit1.Modified := False;
- end;
- end;
-
- procedure TLogoAppForm.FileSaveAs(Sender: TObject);
- begin
- if SaveDialog.Execute then
- begin
- if FileExists(SaveDialog.FileName) then
- if MessageDlg(FmtLoadStr(sOverwrite, [SaveDialog.FileName]),
- mtConfirmation, mbYesNoCancel, 0) <> idYes then Exit;
- RichEdit1.Lines.SaveToFile(SaveDialog.FileName);
- FFileName := SaveDialog.FileName;
- RichEdit1.Modified := False;
- end;
- end;
-
- procedure SendMail(const Subject, MessageText, MailFromName, MailFromAddress,
- MailToName, MailToAddress: String; const Attachments: array of String);
- var
- MAPIError: DWord;
- MapiMessage: TMapiMessage;
- Originator, Recipient: TMapiRecipDesc;
- Files, FilesTmp: PMapiFileDesc;
- FilesCount: Integer;
- begin
- FillChar(MapiMessage, Sizeof(TMapiMessage), 0);
- MapiMessage.lpszSubject := PChar(Subject);
- MapiMessage.lpszNoteText := PChar(MessageText);
- FillChar(Originator, Sizeof(TMapiRecipDesc), 0);
- Originator.lpszName := PChar(MailFromName);
- Originator.lpszAddress := PChar(MailFromAddress);
- MapiMessage.lpOriginator := @Originator;
- MapiMessage.nRecipCount := 1;
- FillChar(Recipient, Sizeof(TMapiRecipDesc), 0);
- Recipient.ulRecipClass := MAPI_TO;
- Recipient.lpszName := PChar(MailToName);
- Recipient.lpszAddress := PChar(MailToAddress);
- MapiMessage.lpRecips := @Recipient;
- MapiMessage.nFileCount := High(Attachments) - Low(Attachments) + 1;
- Files := AllocMem(SizeOf(TMapiFileDesc) * MapiMessage.nFileCount);
- MapiMessage.lpFiles := Files;
- FilesTmp := Files;
- for FilesCount := Low(Attachments) to High(Attachments) do
- begin
- FilesTmp.nPosition := $FFFFFFFF;
- FilesTmp.lpszPathName := PChar(Attachments[FilesCount]);
- Inc(FilesTmp)
- end;
- try
- MAPIError := MapiSendMail(0, Application.MainForm.Handle,
- MapiMessage, MAPI_LOGON_UI or MAPI_NEW_SESSION, 0);
- if MAPIError <> 0 then
- MessageDlg(LoadStr(sSendError), mtError, [mbOK], 0)
- finally
- FreeMem(Files)
- end
- end;
-
- procedure TLogoAppForm.FileSend(Sender: TObject);
- begin
- SendMail('Subject', 'Message text',
- 'The Delphi Clinic', 'clinic@blong.com',
- 'The Delphi Magazine', 'chrisf@itecuk.com',
- ['c:\autoexec.bat'])
- end;
-
- procedure TLogoAppForm.FileExit(Sender: TObject);
- begin
- Close;
- end;
-
- procedure TLogoAppForm.About(Sender: TObject);
- begin
- AboutBox.ShowModal;
- end;
-
- procedure TLogoAppForm.ShowHint(Sender: TObject);
- begin
- StatusBar.SimpleText := Application.Hint;
- end;
-
- end.
-
-